Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modify app-interact chapter #137

Merged
merged 1 commit into from
Dec 14, 2024

Conversation

cosmin1805
Copy link

Prerequisite Checklist

  • Read the contribution guidelines regarding submitting new changes to the project;
  • Tested your changes against relevant architectures and platforms;
  • Updated relevant documentation (if needed).

Description of changes

I will attempt to continue working on:
#76

@cosmin1805 cosmin1805 force-pushed the translate_app-interact branch from 8389211 to a2a4b9a Compare November 16, 2024 10:51
@github-actions github-actions bot added area/content Content (Markdown) update area/media Update to media content area/questions Update to questions content area/reading Update to reading content area/tasks Update to tasks kind/new New content / item labels Nov 16, 2024
@Alex-deVis Alex-deVis self-requested a review November 17, 2024 11:10
@Alex-deVis Alex-deVis self-assigned this Nov 17, 2024
@Alex-deVis
Copy link

Hi, @cosmin1805, thanks for this. Please notify me once your PR covers everything from #76 (and its comments) so that I can mark it as superseded by this.

@teodutu teodutu added the needs-rendering The PR makes changes to the website that need to be rendered label Nov 18, 2024
Copy link

Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In order for your changes to be rendered to the website [1], you'll need to specify the structure of this chapter in config.yaml [2], in a way similar to the others ([3] specifies the files used for each lab and [4] specifies the structure of a chapter in the sidebar). To test the website locally, run make build in the repo's root folder. Fix the errors, then run make serve.

After this, place the slides in their subchapters' slides/ folders and slides.mdpp in chapters/app-interact/.

[1] https://cs-pub-ro.github.io/operating-systems/137/
[2] https://github.com/cs-pub-ro/operating-systems/blob/main/config.yaml
[3]

- title: Lab 7 - Copy-on-Write
filename: lab7.md
content:
- tasks/apache2.md
- tasks/page-faults.md
- tasks/shared-memory.md
- tasks/mini-shell.md
- reading/processes-threads-apache2.md
- reading/copy-on-write.md
- guides/apache2.md
- guides/fork-faults.md
- title: Lab 8 - Syncronization
filename: lab8.md
content:
- tasks/race-condition.md
- tasks/threadsafe-data-struct.md
- tasks/libult.md
- reading/synchronization.md
- reading/user-level-threads.md
- reading/scheduling.md
- guides/user-level-threads.md
- guides/libult.md

[4]
- Compute:
path: /build/prepare_view/.view
extra:
- media
subsections:
- Slides: /build/embed_reveal/Compute/Compute.mdx
- Overview: /build/prepare_view/.view/compute-overview.md
- Questions:
path: questions
subsections:
- Parent Faults Before Fork: parent-faults-before-fork.md
- Mmap Cow Flag: mmap-cow-flag.md
- Sections Always Shared: sections-always-shared.md
- Child Faults After Write: child-faults-after-write.md
- Seg Fault Exit Code: seg-fault-exit-code.md
- Threads Shared Data: threads-shared-data.md
- Thread Memory: thread-memory.md
- Apache2 Strace: apache2-strace.md
- Mini Shell Stops After Command: mini-shell-stops-after-command.md
- Cause of File Not Found Error: cause-of-file-not-found-error.md
- Process Creation: process-creation.md
- Who Calls Execve Parent: who-calls-execve-parent.md
- Exec Without Fork: exec-without-fork.md
- Create Sleepy Process Ending: create-sleepy-process-ending.md
- Processes Speedup: processes-speedup.md
- Parent of Sleep Processes: parent-of-sleep-processes.md
- Sleeping on a Fiber: sleeping-on-a-fiber.md
- Fiber Strace: fiber-strace.md
- Type of Scheduler in Libult: type-of-scheduler-in-libult.md
- Number of Running Ults: number-of-running-ults.md
- Why Use Completed Queue: why-use-completed-queue.md
- Ult Thread IDs: ult-thread-ids.md
- TCB Libult Unikraft: tcb-libult-unikraft.md
- Time Slice Value: time-slice-value.md
- Number of Running Threads: number-of-running-threads.md
- Notify Only With Mutex: notify-only-with-mutex.md
- TLS Var Copies: tls-var-copies.md
- TLS Synchronization: tls-synchronization.md
- Semaphore Equivalent: semaphore-equivalent.md
- Coarse vs Granular Critical Section: coarse-vs-granular-critical-section.md
- Not Race Condition: not-race-condition.md
- Lab 6 - Multiprocess and Multithread: lab6.md
- Lab 7 - Copy-on-Write: lab7.md
- Lab 8 - Syncronization: lab8.md

@teodutu teodutu added the student-contrib Fix or improvement made by a student label Nov 19, 2024
@cosmin1805
Copy link
Author

In order for your changes to be rendered to the website [1], you'll need to specify the structure of this chapter in config.yaml [2], in a way similar to the others ([3] specifies the files used for each lab and [4] specifies the structure of a chapter in the sidebar). To test the website locally, run make build in the repo's root folder. Fix the errors, then run make serve.

After this, place the slides in their subchapters' slides/ folders and slides.mdpp in chapters/app-interact/.

[1] https://cs-pub-ro.github.io/operating-systems/137/ [2] https://github.com/cs-pub-ro/operating-systems/blob/main/config.yaml [3]

- title: Lab 7 - Copy-on-Write
filename: lab7.md
content:
- tasks/apache2.md
- tasks/page-faults.md
- tasks/shared-memory.md
- tasks/mini-shell.md
- reading/processes-threads-apache2.md
- reading/copy-on-write.md
- guides/apache2.md
- guides/fork-faults.md
- title: Lab 8 - Syncronization
filename: lab8.md
content:
- tasks/race-condition.md
- tasks/threadsafe-data-struct.md
- tasks/libult.md
- reading/synchronization.md
- reading/user-level-threads.md
- reading/scheduling.md
- guides/user-level-threads.md
- guides/libult.md

[4]

- Compute:
path: /build/prepare_view/.view
extra:
- media
subsections:
- Slides: /build/embed_reveal/Compute/Compute.mdx
- Overview: /build/prepare_view/.view/compute-overview.md
- Questions:
path: questions
subsections:
- Parent Faults Before Fork: parent-faults-before-fork.md
- Mmap Cow Flag: mmap-cow-flag.md
- Sections Always Shared: sections-always-shared.md
- Child Faults After Write: child-faults-after-write.md
- Seg Fault Exit Code: seg-fault-exit-code.md
- Threads Shared Data: threads-shared-data.md
- Thread Memory: thread-memory.md
- Apache2 Strace: apache2-strace.md
- Mini Shell Stops After Command: mini-shell-stops-after-command.md
- Cause of File Not Found Error: cause-of-file-not-found-error.md
- Process Creation: process-creation.md
- Who Calls Execve Parent: who-calls-execve-parent.md
- Exec Without Fork: exec-without-fork.md
- Create Sleepy Process Ending: create-sleepy-process-ending.md
- Processes Speedup: processes-speedup.md
- Parent of Sleep Processes: parent-of-sleep-processes.md
- Sleeping on a Fiber: sleeping-on-a-fiber.md
- Fiber Strace: fiber-strace.md
- Type of Scheduler in Libult: type-of-scheduler-in-libult.md
- Number of Running Ults: number-of-running-ults.md
- Why Use Completed Queue: why-use-completed-queue.md
- Ult Thread IDs: ult-thread-ids.md
- TCB Libult Unikraft: tcb-libult-unikraft.md
- Time Slice Value: time-slice-value.md
- Number of Running Threads: number-of-running-threads.md
- Notify Only With Mutex: notify-only-with-mutex.md
- TLS Var Copies: tls-var-copies.md
- TLS Synchronization: tls-synchronization.md
- Semaphore Equivalent: semaphore-equivalent.md
- Coarse vs Granular Critical Section: coarse-vs-granular-critical-section.md
- Not Race Condition: not-race-condition.md
- Lab 6 - Multiprocess and Multithread: lab6.md
- Lab 7 - Copy-on-Write: lab7.md
- Lab 8 - Syncronization: lab8.md

What are the titles of Lab 12 and Lab 13? How do I decide the order in which to arrange the tasks, and in which lab each task should be included?

@teodutu
Copy link

teodutu commented Nov 19, 2024

What are the titles of Lab 12 and Lab 13? How do I decide the order in which to arrange the tasks, and in which lab each task should be included?

There will only be lab 12 for App Interact. You can see the tasks here [1]. Keep them mostly in the same order, but if you feel that any of them would work better in a different place, feel free to move it. Moving tasks around is as easy as moving one line in config.yaml so don't worry about making mistakes there, they're easy to fix.

[1]

# - Application Interaction:
# path: content/chapters/app-interact/lab/content
# extra:
# - ../media
# - ../quiz
# subsections:
# - Overview: overview.md
# - Time Server: time-server.md
# - Password Cracker: password-cracker.md
# - The X Window System: x-window-system.md
# - D-Bus: dbus.md
# - OS Cloud: os-cloud.md

@cosmin1805 cosmin1805 requested a review from teodutu November 22, 2024 15:15
@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 22, 2024
Copy link

@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 22, 2024
Copy link

Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The chapter's starting to take a better shape now. I made inline suggestions to make things look better. Most of them should be applied globally. In addition, you should also start looking into the checkpatch [1] and super-linter failures [2]. To fix spellcheck, you'll have to add the false positive words [3] to these wordlist via another PR. Make sure to keep those wordlist sorted.

[1] https://github.com/cs-pub-ro/operating-systems/actions/runs/11975236465/job/33388135941?pr=137
[2] https://github.com/cs-pub-ro/operating-systems/actions/runs/11975236465/job/33388135510?pr=137
[3] https://github.com/cs-pub-ro/operating-systems/actions/runs/11975236465/job/33388135058?pr=137

chapters/app-interact/overview/slides/channels.md Outdated Show resolved Hide resolved
chapters/app-interact/overview/slides/api.md Outdated Show resolved Hide resolved
chapters/app-interact/Makefile Outdated Show resolved Hide resolved
chapters/app-interact/Makefile Outdated Show resolved Hide resolved
@Alex-deVis Alex-deVis assigned teodutu and unassigned Alex-deVis Nov 28, 2024
@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 28, 2024
Copy link

Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made some more inline comments about splitting the content. Besides, fix the linter failures [1] (I gave further details here [2]), remove content/chapters/app-interact/ and these comments [3].

[1] https://github.com/cs-pub-ro/operating-systems/pull/137/checks
[2] #137
[3] https://github.com/cs-pub-ro/operating-systems/blob/main/config.yaml#L331-L348

chapters/app-interact/Makefile Outdated Show resolved Hide resolved
chapters/app-interact/dbus/drills/tasks/dbus/README.md Outdated Show resolved Hide resolved
chapters/app-interact/dbus/reading/dbus.md Outdated Show resolved Hide resolved
@cosmin1805 cosmin1805 force-pushed the translate_app-interact branch from 48c362c to a04b480 Compare December 12, 2024 19:58
@cosmin1805
Copy link
Author

@teodutu and @Alex-deVis I fixed what I could what is left now is some errors from the io chapter, witch I did rebase but something is still wrong and some that I don't know if I should fix, like:

WARNING:REPEATED_WORD: Possible repeated word: 'slice'
#979: FILE: chapters/app-interact/os-cloud/drills/tasks/os-cloud/README.md:37:
+[ OK ] Removed slice Slice /system/modprobe.
Error: WARNING:REPEATED_WORD: Possible repeated word: 'slice'
2024-12-12 19:34:36 [INFO]   File:[/github/workspace/chapters/app-interact/os-cloud/drills/tasks/os-cloud/solution/keys/ssh_key]
2024-12-12 19:34:36 [ERROR]   Found errors in [gitleaks] linter!
2024-12-12 19:34:36 [ERROR]   Error code: 1. Command output:
------
Finding:     -----BEGIN OPENSSH PRIVATE KEY-----                                
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdz...-
Secret:      -----BEGIN OPENSSH PRIVATE KEY-----                                
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdz...
RuleID:      private-key
Entropy:     5.992806
File:        /github/workspace/chapters/app-interact/os-cloud/drills/tasks/os-cloud/solution/keys/ssh_key
Line:        1
Fingerprint: /github/workspace/chapters/app-interact/os-cloud/drills/tasks/os-cloud/solution/keys/ssh_key:private-key:1
2024-12-12 19:37:07 [ERROR]   Found errors in [textlint] linter!
2024-12-12 19:37:07 [ERROR]   Error code: 1. Command output:
------

/github/workspace/chapters/app-interact/os-cloud/reading/os-cloud.md
  460:14  ✓ error  Incorrect usage of the term: “Internet”, use “internet” instead  terminology

✖ 1 problem (1 error, 0 warnings)
✓ 1 fixable problem.

This one is a the tittle of the file

2024-12-12 19:37:21 [ERROR]   Found errors in [black] linter!
2024-12-12 19:37:21 [ERROR]   Error code: 1. Command output:
------
--- /github/workspace/gen-view.py	2024-12-12 19:34:15.111193 +0000
+++ /github/workspace/gen-view.py	2024-12-12 19:37:21.063104 +0000
@@ -69,10 +69,11 @@
 
     for root, _, files in os.walk(CHAPTERS_PATH):
         for f in files:
             if "questions" in root:
                 os.popen(f"cp {os.path.join(root, f)} {questionsDir}/")
+
 
 def group_guides():
     """
     Group all the guides README.md files in a single directory.
     """
would reformat /github/workspace/gen-view.py

Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true, some CI/CD errors won't make sense. Ignore those that don't and fix the others.

You removed a good portion of the spurious files from the I/O chapter. For the rest, you can run git checkout main -- chapters/io/. and that should synch your local io/ chapter with the one on main.

@Alex-deVis Alex-deVis force-pushed the translate_app-interact branch 2 times, most recently from e61a715 to 6a08446 Compare December 13, 2024 11:02
@Alex-deVis
Copy link

@cosmin1805 I force-pushed your branch to fix the chekpatch. You probably had an outdated local main branch and therefore git checkout main -- chapters/io didn't solve the issue. Additionally, you should've ensured that your local main is on par with the remote.
Anyway, remember to fetch the latest ref before making additional changes:

git fetch
git reset --hard <remote-name>/translate_app-interact

@cosmin1805
Copy link
Author

@teodutu Everything looks good now. I also committed the last change I forgot to make earlier. Should I squash all the commits into one?

@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Dec 13, 2024
Copy link

@Alex-deVis
Copy link

Alex-deVis commented Dec 13, 2024

Almost there, @cosmin1805, just a few more high-level changes.

The Create a New Disk by Hand task does not make sense on its own. Move it back inside os-cloud for now, without the Task prefix (only change its first heading to ## Task: Create a New Disk by Hand). This way, it would be a little more obvious that you need to go through the entire OS cloud section to solve it.
Other things you could do to improve clarity:

  • Create a guide named Containers vs VMs comprising of everything inside the current containers vs vms and containers subchapters.
  • Move the More Implementation Details and (Even More) Implementation Details to the end of OS Cloud
  • Move the The X Window System to the top of the reading materials - it is quite easy and nice to know how the display manager works.

Ignore the current issues in superlinter CI, we'll merge regardless after you finish the above items.

@cosmin1805
Copy link
Author

cosmin1805 commented Dec 13, 2024

Almost there, @cosmin1805, just a few more high-level changes.

The Create a New Disk by Hand task does not make sense on its own. Move it back inside os-cloud for now, without the Task prefix (only change its first heading to ## Task: Create a New Disk by Hand). This way, it would be a little more obvious that you need to go through the entire OS cloud section to solve it. Other things you could do to improve clarity:

* Create a guide named `Containers vs VMs` comprising of everything inside the current `containers vs vms` and `containers` subchapters.

* Move the `More Implementation Details` and `(Even More) Implementation Details` to the end of `OS Cloud`

* Move the `The X Window System` to the top of the reading materials - it is quite easy and nice to know how the display manager works.

Ignore the current issues in superlinter CI, we'll merge regardless after you finish the above items.

@Alex-deVis I’ve completed all the requested changes. However, I had a few questions about moving the ## Task: Create a New Disk by Hand section. Could you please confirm if I’ve placed it correctly or suggest any adjustments I should make?

@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Dec 13, 2024
Copy link

@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Dec 14, 2024
@cosmin1805 cosmin1805 force-pushed the translate_app-interact branch from 6b09fa7 to 1335ee2 Compare December 14, 2024 10:12
@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Dec 14, 2024
Copy link

This commit restructures the Application Interaction chapter according
to OpenEdu methodology.

Signed-off-by: Iacobai Cosmin-Andrei <[email protected]>
@cosmin1805 cosmin1805 force-pushed the translate_app-interact branch from 1335ee2 to e65aac4 Compare December 14, 2024 10:41
@cosmin1805 cosmin1805 requested a review from teodutu December 14, 2024 11:36
@teodutu teodutu merged commit 4adf3fa into cs-pub-ro:main Dec 14, 2024
2 of 3 checks passed
@Alex-deVis Alex-deVis mentioned this pull request Dec 14, 2024
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/content Content (Markdown) update area/guides Update to guides content area/infra Update to infrastructure / scripts area/media Update to media content area/questions Update to questions content area/reading Update to reading content area/tasks Update to tasks kind/new New content / item needs-rendering The PR makes changes to the website that need to be rendered student-contrib Fix or improvement made by a student
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants